require(['./config'], () => {
    require(['cookie'], () => {
        class Login {
            constructor() {
                this.init()
                this.login()
                this.register()
            }

            init() {
                const _this = this
                // 用户名输入提示
                $('.user').blur(function () {
                    var username = $(this).val()

                    if (!(/^1[3456789]\d{9}$/.test(username)) && username != '') {
                        $('#phone_error').css({ 'display': 'block' })
                    } else {
                        $('#phone_error').css({ 'display': 'none' })
                    }
                })
                // 密码输入提示
                $('.pword').blur(function () {
                    var password = $(this).val()

                    if (!(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/.test(password)) && password != '') {
                        $(this).next('div').css({ 'display': 'block' })
                        $(this).prev('label').css({ 'display': 'none' })
                    } else {
                        $(this).next('div').css({ 'display': 'none' })
                        $(this).prev('label').css({ 'display': 'block' })
                    }
                })

                $('.pword').focus(function () {
                    $(this).prev('label').css({ 'display': 'none' })
                })


                $('.pw').click(function () {
                    $(this).css({ 'display': 'none' })
                })

                $('.tabsnav li').each(function () {
                    $(this).click(function () {
                        $(this).addClass("on").siblings().removeClass('on')
                        if ($('.restab').hasClass('on')) {
                            $('.btn1').css({ 'z-index': '1' })
                            $('.btn2').css({ 'background': 'red', 'border': '1px solid red', 'z-index': '2' })
                            $('.days').css({ 'display': 'none' })
                            $('.again').css({ 'display': 'block' })
                        }

                        else if ($('.logintab').hasClass('on')) {
                            $('.btn2').css({ 'z-index': '1' })
                            $('.btn1').css({ 'background': '#0085d0', 'border': '1px solid #0085d0', 'z-index': '2' })
                            $('.days').css({ 'display': 'block' })
                            $('.again').css({ 'display': 'none' })
                        }
                    })
                })
            }

            // 登录
            login() {
                const _this = this
                $('.btn1').click(function () {
                    _this.log_check()
                })
            }

            log_check() {
                var username = $('.user').val()
                var password = $('.pword1').val()
                if (username === '' || password === '') {
                    alert('用户名或密码为空！')
                }
                else if (!(/^1[3456789]\d{9}$/.test(username))) {
                    alert('请重新输入电话号码！')
                }
                else if (!(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/.test(password))) {
                    alert('请重新输入密码！')
                }
                else {
                    // $.post('http://localhost/api/user/login.php', { username: username, password: password }, function (res) {
                    //     res = JSON.parse(res)
                    //     if (res.code === 200) {
                    //         var userInfo = { username, password }

                    //         if ($('#seven').prop('checked')) {
                    //             $.cookie('userInfo', JSON.stringify(userInfo), { expires: 7, path: '/' })
                    //         } else {
                    //             $.cookie('userInfo', JSON.stringify(userInfo), { path: '/' })
                    //         }

                    //         alert('登录成功，即将跳转首页')
                    //         window.location.href = '/index.html'
                    //     }
                    //     else if (res.code === 201) {
                    //         alert(res.body.msg)
                    //     }
                    // })


                    var userList = localStorage.getItem('userList')

                    if (userList) {
                        // 已经有注册过的用户了
                        userList = JSON.parse(userList)
                        // 查找相同的用户名和密码
                        var isExist = userList.some(userInfo => {
                            return userInfo.username === username && userInfo.password === password
                        })

                        if (isExist) {

                            var userInfo = { username, password }

                            if ($('#seven').prop('checked')) {
                                $.cookie('userInfo', JSON.stringify(userInfo), { expires: 7, path: '/' })
                            } else {
                                $.cookie('userInfo', JSON.stringify(userInfo), { path: '/' })
                            }
                            alert('登录成功')
                            window.location.href = "/index.html"
                        } else {
                            alert('用户名或密码错误，请重试!')
                        }
                    } else {
                        alert('没有用户信息')
                    }


                }

            }



            // 注册
            register() {
                const _this = this
                $('.btn2').click(function () {
                    _this.reg_check()
                })
            }

            reg_check() {
                var username = $('.user').val()
                var password = $('.pword1').val()
                var password2 = $('.pword2').val()

                if (username === '' || password === '' || password2 == '') {
                    alert('用户名或密码为空！')
                }

                else if (!(/^1[3456789]\d{9}$/.test(username))) {
                    alert('请重新输入电话号码！')
                }

                else if (!(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/.test(password)) ||
                    !(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/.test(password2))
                ) {
                    alert('请重新输入密码！')
                }

                else if (password != password2) {
                    alert('两次密码输入不一致！')
                }

                else {
                    // $.post('http://localhost/api/user/register.php', {
                    //     username: username, password: password
                    // }, function (res) {
                    //     res = JSON.parse(res)
                    //     console.log(res)
                    //     if (res.code === 200) {
                    //         alert('注册成功!')
                    //     }
                    //     else if (res.code === 202) {
                    //         alert('用户名已存在，请重新输入')
                    //     }
                    // })

                    this.userInfo = { username, password }

                    var userList = localStorage.getItem('userList')

                    // 判断本地是否已经存过
                    if (userList) {
                        userList = JSON.parse(userList)

                        const isExit = userList.some(userList => {
                            return userList.username == this.userInfo.username;
                        })

                        if (isExit) {
                            alert('该用户名已经被注册!')
                        } else {
                            userList.push(this.userInfo)
                            localStorage.setItem('userList', JSON.stringify(userList))
                            alert('注册成功!')
                        }
                    } else {
                        localStorage.setItem('userList', JSON.stringify([{
                            username: username,
                            password: password
                        }]))
                        alert('注册成功!')
                    }

                }
            }

        }
        new Login()
    })
})